
#ifndef _EFFECT_H_
#define _EFFECT_H_

#include <SDL/SDL.h>
#include "Object.h"

namespace animationagent {

class Effect : public Object
{
public:
    Effect();
    virtual ~Effect();
    virtual int Blit(SDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst, SDL_Rect *dstrect) = 0;
    /* Remember to register dirty rect your self */
    virtual bool update() = 0;

protected:
    SDL_Surface *cache_surface;
    bool undereffecting;
};


}

#endif
